Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Тормоза при выборке из таблицы (Nauly)
Author Message
Nauly
Участник форума
Warnings: 1


Joined: 25 Jun 2004
Posts: 104
Карма: 0
   поощрить/наказать

Location: Москва

PostPosted: Tue Dec 27, 2005 9:13 pm (написано за 4 минуты 44 секунды)
   Post subject: Тормоза при выборке из таблицы
Reply with quote

Здравствуйте, уважаемые участники!

Помогите, пожалуйста, с оптимизацией таблицы.

структура - id1 (int) | id2 (int) | text | и далее еще пара текстовых полей

В ней сейчас 70 000 записей, выборка идет по полям id1 и id2 (индексы)

запрос выглядит так:
Code (SQL): скопировать код в буфер обмена
SELECT * FROM messenger WHERE (id1 = '$id1' AND id2 = '$id2') OR (id1 = '$id2' AND id2 = '$id1') ORDER BY date DESC LIMIT 0,".LIMIT_MESSENGER."
Тормозит не то, чтобы очень - но довольно неприятно.

Если я добавлю уникальный ИД для каждой записи в таблице - это увеличит скорость выборки по такому запросу? или сам запрос в принципе оч тупой?
Back to top
View user's profile Send private message Send e-mail
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Wed Dec 28, 2005 10:40 am (спустя 13 часов 27 минут; написано за 32 секунды)
   Post subject:
Reply with quote

Nauly wrote:
WHERE (id1 = '$id1' AND id2 = '$id2') OR (id1 = '$id2' AND id2 = '$id1')
Вот это меня смущает.
Явно где-то в проектировании косяк.
Back to top
View user's profile Send private message
Nauly
Участник форума
Warnings: 1


Joined: 25 Jun 2004
Posts: 104
Карма: 0
   поощрить/наказать

Location: Москва

PostPosted: Wed Dec 28, 2005 11:04 am (спустя 24 минуты; написано за 2 минуты 11 секунд)
   Post subject:
Reply with quote

Константин Жинько [tIT] wrote:
Вот это меня смущает.
Явно где-то в проектировании косяк.
Ну, народ пишет друг другу онлайн смски, они пишуца таким образом в базу - от одного к другому - ид первого --- ид второго -- текст

ну, а отображаеца в окне диалог полный (вот и вынимаю и от одного и от другого)

а как лучше такую систему реализовать? надо же указать от кого и кому конкретно..?
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 414
   поощрить/наказать


PostPosted: Wed Dec 28, 2005 8:16 pm (спустя 9 часов 11 минут; написано за 31 секунду)
   Post subject:
Reply with quote

Создайте составной индекс по полям (id1, id2). Тормоза резко исчезнут (конечно, если там не по тысяче записей в каждой выборке).
Back to top
View user's profile Send private message Send e-mail
Nauly
Участник форума
Warnings: 1


Joined: 25 Jun 2004
Posts: 104
Карма: 0
   поощрить/наказать

Location: Москва

PostPosted: Wed Dec 28, 2005 8:46 pm (спустя 30 минут; написано за 1 минуту 2 секунды)
   Post subject:
Reply with quote

Спасибо за совет!
Нет, не тысяча отнюдь, но тормоза резко не исчезли :( чуть чуть побыстрее.
надо думать наверное, как по другому реализовать!
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 414
   поощрить/наказать


PostPosted: Thu Dec 29, 2005 8:47 pm (спустя 1 день 48 секунд; написано за 42 секунды)
   Post subject:
Reply with quote

Нет, надо проверить все ТЩАТЕЛЬНО.
Видимо, тормозит что-то еще. Ваш запрос не должен тормозить даже на сотне миллионов записей.
Используйте EXPLAIN.
Back to top
View user's profile Send private message Send e-mail
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Wed Jan 04, 2006 4:42 am (спустя 5 дней 7 часов 54 минуты; написано за 1 минуту 34 секунды)
   Post subject:
Reply with quote

sms-чат получается... хм.%
Запрос выполняется очень быстро иначе DDL таблицы в студию!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML